package com.ucode.crm.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ucode.crm.mode.Contacts;

/**
 * 客户联系人Mapper
 * @author: liliang
 * @date: 2020年1月31日 下午8:25:29
 */
public interface ContactsMapper {

    /**
     * 添加
     * @author liliang
     * @date 2020年1月31日
     * @param contacts
     * @return
     */
    public int insert(Contacts contacts);
    /**
     * 更新
     * @author liliang
     * @date 2020年1月31日
     * @param contacts
     * @return
     */
    public int update(Contacts contacts);
    
    /**
     * 更新客户负责人
     * @author liliang
     * @date 2020年1月31日
     * @param customerId 客户主键
     * @param ownerUserId 客户负责人Id
     * @return
     */
    public int updateOwnerUser(@Param("customerId")Long customerId,@Param("ownerUserId")Long ownerUserId);
    
    /**
     * 更新客户协作人
     * @author liliang
     * @date 2020年1月31日
     * @param customerId 客户主键
     * @param collaborator 客户协作人
     * @return
     */
    public int updateCollaborator(@Param("customerId")Long customerId,@Param("collaborator")String collaborator);
    /**
     * 清理客户负责人
     * @author liliang
     * @date 2020年6月9日
     * @param customerId
     * @return
     */
    public int clearCustomerOwnerUser(@Param("customerId")Long customerId);
    
    /**
     * 设置是否默认联系人
     * @author liliang
     * @date 2020年3月12日
     * @param id
     * @param dc
     * @return
     */
    public int updateDc(@Param("id")Long id,@Param("dc")Integer dc);
    /**
     * 批量物理删除,不可恢复
     * @author liliang
     * @date 2020年1月31日
     * @param ids
     * @return
     */
    public int delete(List<Long> ids);
    /**
     * 批量逻辑删除,可恢复
     * @author liliang
     * @date 2020年1月31日
     * @param id
     * @return
     */
    public int deleteByLogic(Long id);
    /**
     * 批量恢复逻辑删除的数据
     * @author liliang
     * @date 2020年1月31日
     * @param ids
     * @return
     */
    public int recover(List<Long> ids);
    /**
     * 主键查询
     * @author liliang
     * @date 2020年1月31日
     * @param id
     * @return
     */
    public Contacts findById(Long id);
    /**
     * 主键集合查询
     * @author liliang
     * @date 2020年1月31日
     * @param ids
     * @return
     */
    public List<Contacts> findByIds(List<Long> ids);
    /**
     * 查询客户联系人
     * @author liliang
     * @date 2020年1月31日
     * @param customerId
     * @return
     */
    public List<Contacts> findListByCustomerId(Long customerId);
    
}
